﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;


namespace InterfaceHommeMachine
{
    /// <summary>
    /// Logique d'interaction pour Window1.xaml
    /// </summary>
    public partial class DebutPartie : Window
    {
       public Dictionary<String, Object> info { get;set;}

        //Lancement de la fenetre
        public DebutPartie()
        {
            InitializeComponent();
            info = new Dictionary<string,object>();
            
                        
        }

        //Action sur click sur ok
         private void Ok_Click(object sender, RoutedEventArgs e)
        {
            this.extraireInformation();
            App.getApp().afficherMainWindow(true);
            Close();   
        }

         //Action sur click sur nbjoueur
         private void NbJoueur_Changed(object sender, RoutedEventArgs e)
         {
             //parce qu'il y a un premiere appel à l'init et que les grids n'existent pas encore
             if (Joueur3 != null && Joueur4 != null)
             {
                 if (nbJoueur.SelectedIndex == 0)
                 {
                     Joueur3.Visibility = Visibility.Hidden;
                     Joueur4.Visibility = Visibility.Hidden;

                 }
                 else if (nbJoueur.SelectedIndex == 1)
                 {
                     Joueur3.Visibility = Visibility.Visible;
                     Joueur4.Visibility = Visibility.Hidden;

                 }
                 else if (nbJoueur.SelectedIndex == 2)
                 {
                     Joueur3.Visibility = Visibility.Visible;
                     Joueur4.Visibility = Visibility.Visible;
                 }
                 checkTailleEtNombre(sender, e);
             }
             
         }


         private bool extraireInformation()
         {
             info = new Dictionary<string, object>();

             //Récuperation taille carte
             if ((bool)petiteCarte.IsChecked)
             {
                 info.Add("Taille", 25);
             }
             else if ((bool)grandeCarte.IsChecked)
             {
                 info.Add("Taille", 100);
             }

             info.Add("Joueur1", NomJoueur1.Text);
             info.Add("Civ1", Civ1.SelectedItem.ToString().Substring(38));
             info.Add("Joueur2", NomJoueur2.Text);
             info.Add("Civ2", Civ2.SelectedItem.ToString().Substring(38));
             info.Add("Joueur3", NomJoueur3.Text);
             info.Add("Civ3", Civ3.SelectedItem.ToString().Substring(38));
             info.Add("Joueur4", NomJoueur4.Text);
             info.Add("Civ4", Civ4.SelectedItem.ToString().Substring(38));

             info.Add("nbjoueur", nbJoueur.SelectedIndex+2);
             Console.Write(Civ1.SelectedItem.ToString().Substring(38));
             return false ;
         }


         private void Annuler_Click(object sender, RoutedEventArgs e)
         {
             Close();
             App.getApp().Shutdown(0);
         }

         private void checkTailleEtNombre(object sender, RoutedEventArgs e)
         {
             int nbjoueur = nbJoueur.SelectedIndex + 2;
             if (nbjoueur == 3 || nbjoueur == 4)
             {
                 grandeCarte.IsChecked = true;
                 petiteCarte.IsChecked = false;
             }
             /*else if (nbjoueur == 2)
             {
                 grandeCarte.IsChecked = false;
                 petiteCarte.IsChecked = true;
             }*/
         }

         //Ouverture d'une fenetre de choix de fichier à charger + action de désérialisation
         private void buttonCharger_Click(object sender, RoutedEventArgs e)
         {
             Microsoft.Win32.OpenFileDialog boiteOuverture = new Microsoft.Win32.OpenFileDialog();
             boiteOuverture.Filter = "Fichier insa(*.insa)|*.insa";
             if (boiteOuverture.ShowDialog() == true)
             {
                /* try
                 {*/
                     ImplementationJeu.Jeu.Instance.chargerPartie(boiteOuverture.FileName);
                     App.getApp().afficherMainWindow(false);
                     Close();
                 /*}
                 catch (Exception eee)
                 {
                     MessageBox.Show("Le fichier de sauvegarde est corrompu et ne peut être chargé...", "Erreur : Fichier de sauvegarde illisible");
                 }*/
             }
         }

    }
}
